Adjusting margins in book page images

ABSTRACT

A user interface (e.g., a browser window) includes a display area for displaying an image (e.g., a book page image). The image can be rescaled based on the dimensions of the display area and other factors. In some implementations, margins in book page images are adjusted to create additional or less display area.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation of U.S. application Ser. No. 14/284,625, filed onMay 22, 2014, which is a continuation of U.S. application Ser. No.11/543,722, filed on Oct. 4, 2006 (now U.S. Pat. No. 8,782,551). Thedisclosures of the prior applications are considered part of and areincorporated by reference in the disclosure of this application.

TECHNICAL FIELD

The subject matter of this application is generally related toformatting content for presentation on a display area.

BACKGROUND

Information technology has provided new ways of publishing books,newspapers, magazines and periodicals. Electronic books (“e-books”) canbe purchased and downloaded from e-bookstores online and read on variousdevices, such as personal computers, personal digital assistants (PDAs),pocket-PCs, mobile phones, media player/recorders, dedicated e-bookreaders, etc. An e-book is typically a collection of digital objects ordocuments, which are packaged and formatted with the intention of beingdisplayed on a device or read by a speech generating application.E-books can be distributed over a network as a sequence of images, forexample, one image for each page. E-books that are distributed over anetwork (e.g., the Internet, wireless network) using Hypertext Mark-upLanguage (HTML) can be read using a standard browser (e.g., Microsoft®Internet Explorer).

Conventional e-book technology suffers several drawbacks. For example,exploring an e-book typically requires horizontal motion (flippingthrough pages) and vertical motion (scrolling within every page), whichmakes regular sequential reading of book pages frustrating. Anotherdrawback is the poor use of free space on large display screens andlimited space on small display screens.

SUMMARY

A user interface (e.g., a browser window) includes a display area fordisplaying an image (e.g., a book page image). The image can be rescaledbased on the dimensions of the display area and other factors.

In some implementations, a method includes: receiving an image having acontent space including content and at least one margin proximate to thecontent; determining the margin size; adjusting the margin size tomodify the content space; and rescaling the image content tosubstantially fill the content space.

Other implementations are disclosed, including implementations directedto systems, methods, apparatuses, computer-readable mediums and userinterfaces.

DESCRIPTION OF DRAWINGS

FIG. 1 illustrates an exemplary viewport for displaying images.

FIG. 2 is a flow diagram for an exemplary scaling process for theviewport of FIG. 1.

FIG. 3 is a flow diagram for an exemplary margin adjustment process.

FIG. 4 is a flow diagram for an exemplary table of contents creationprocess.

FIG. 5 is a block diagram of an exemplary viewport system architecture.

FIG. 6 is a screen shot illustrating an exemplary table of contentsincluding links.

FIG. 7 is a screen shot illustrating an exemplary book reference page.

DETAILED DESCRIPTION Viewport Overview

FIG. 1 illustrates an exemplary viewport 102 for displaying an image104. In some implementations, the viewport 102 is displayed in a userinterface 100 (e.g., a browser window). In the example shown, theviewport 102 is used to view book page images in an e-book application.The viewport 102, however, can be used to view other types of content(e.g., news articles, magazines, newspapers, .pdfs, blogs).

The viewport 102 can be provided by a server (e.g., a web server) over anetwork (e.g., the Internet, wireless network). In the example shown,the viewport 102 can be presented on a web page interface for a booksearch engine. A user can enter a search term (e.g., the title of abook) in a search box 112, and click a button 114 to begin or otherwiseactivate the search process. An example of a book search engine isGoogle™ Book Search, developed by Google Inc. (Mountain View, Calif.).

The search results can be presented to the user with other information(e.g., a summary, image) and a link to allow the user to view one ormore pages of the book. For example, when the user clicks the linkcorresponding to a book the user wants to review, a book page image 104can be presented in a display area 108 of the viewport 102. The bookpage image 104 typically includes book page content 106 (e.g., text,images), which can be set-off by margins. In some implementations, thebook page image is a digital image of an actual book page. In someimplementations, a single page layout or a two page layout (pagesdisplayed side by side) can be displayed in the display area 108 of theviewport 102.

In addition to the viewport 102, a panel 110 can be displayed (e.g.,side panel as shown) for presenting information related to the book.Such information can include, but is not limited to: title, author,summary or forward, title page link, copyright link, table of contents(TOC) link, index link, links to book retailers, library search link, abook search engine for searching for particular terms inside the book,etc. For example, if the user clicks the TOC link, then an image of thebook's TOC will be displayed in the viewport 102, as shown in FIG. 6.

The user can navigate (e.g., flip) through book pages using the controls116 (e.g., arrow buttons). By clicking the controls 116, the book pageimages can be displayed in two directions. The controls 116 can changeaccording to the image that is displayed in the viewport 102. In someimplementations where an entire book is viewable, the user can enter apage number into a search box and go directly to that page withoutincrementing through other pages. An example of a search box is thesearch box 608 shown in FIG. 6. In other implementations where only afew consecutive pages can be navigated (e.g., first few pages of achapter), the controls 116 can be provided. Other controls fornavigating a book can be included, such as scroll bars, buttons, links,speech command recognition, multi-touch displays, etc.

In some implementations, the viewport 102 (and the book page imagecontained therein) rescales with the user interface 100. For example,the user interface 100 may be manually resized for display using aninput device (e.g., a mouse), or the viewport 102 may be automaticallyresized for display by an application or operating system of a devicethat may have a limited screen space (e.g., a portable computer, mobilephone, media player/recorder, PDA). To create a more comfortable userexperience for extended reading, it is desirable to manage the screenspace for displaying the book pages. This can be accomplished by fillingthe viewport 102 with a book page image 104 that has been rescaled to asize determined by the available display area 108 in the viewport 102(i.e., the viewport dimensions) and other factors, which are describedin reference to FIG. 2.

Scaling Process

FIG. 2 is a flow diagram for an exemplary scaling process 200. In someimplementations, the process 200 begins when a viewport is launched in auser interface (e.g., a browser window) in response to a trigger event.The dimensions of the viewport can be determined from default values orbased on the current size of the user interface (202). For example, if auser clicks a link corresponding to a result of a book search, theviewport can be launched based on default settings, and a default imagecan be displayed in the viewport (e.g., a title page or first page of abook). In some implementations, books are previously scanned andprocessed to extract and/or determine information (e.g., dimensions)that can be used to later manage the display of images in a viewport.Such processing can include, but is not limited to: determining atypical text bounding box for the book page images, determining a textbounding box for each book page image, removing artifacts in book pageimages (e.g., artifacts due to systematic scanning error), etc.

If the user clicks a control to select a different book page, theselected book page image can be retrieved from an image repository (204)or other suitable data structure for storing images (e.g., cachememory). In some implementations, the image is scaled to fit in theviewport given the current dimensions of the viewport and other factors(206). In other implementations, the user is provided with zoom controlswith predetermined zoom “stops”. The zoom stops can be set as a functionof viewport size (e.g., height, width). The zoom stops fit the image tothe height and/or width of the viewport. The zoom stops can haveabsolute bounds to prevent the image from being made arbitrarily largeor small.

The scaled image is displayed in the viewport (208). If the userinterface (e.g., browser window) is resized (210), then the viewport canbe re-sized based on the current dimensions of the user interface (212)and the process 200 returns to step 206. Alternatively, the viewport canbe maintained based on user settings or preferences. For example, a usermay want the size of the viewport to remain fixed when the userinterface is resized.

In some implementations, the dimensions of the viewport 102 are providedby a window manager service, which is commonly included as part of anoperating system (e.g., Windows XP). Other factors that can be used toscale an image for display in the viewport can include, but are notlimited to:

-   -   the x-height (approximately the line height in pixels) of text        on the book page, which can be provided by an optical character        recognition (OCR) system, such as the Tesseract OCR engine        developed by Hewlett-Packard, Inc.;    -   a bounding box for text on the book page image, as given by        margin recognition or the user's current browser text size; and    -   the user's current browser text size. For example, text can be        rendered to a hidden portion of the user interface (e.g., a        browser window) and measured to estimate the user's browser text        size, and a scale factor can be determined from the measurement        for correcting the image size.

In some implementations, scaling can be determined empirically usingsome principles (e.g., rules, guidelines, options, etc.). Some exemplaryprinciples for determining a scaled size include, but are not limitedto:

-   -   Rule 1: At the scaled size there should not be horizontal        scrolling within the viewport.    -   Rule 2: At the scaled size, the height “x” should not be below a        threshold value of N (e.g., 10 or 12 pixels).    -   Guideline 1: If the text on the book page image is “close” to        fitting in the viewport (vertically), the scaled size image        should fit entirely in the viewport. In some implementations,        the scaling can be performed by a user with “zoom” controls        having zoom “stops” that are customized to the particular image        being zoomed.    -   Guideline 2: In general, minimize the number of times the        viewport is filled to consume a book page image. This        minimization can be achieved in part through margin cropping, as        described in reference to FIG. 3.

In some implementations, a bounding box of the text on the page can bepadded. If the padded bounding box is “close” to fitting in the displayarea 108 of the viewport 102, then the image is scaled to fit thedisplay area 108. In some implementations, the scaling is performedprovided the text does not drop below a minimum x-height. In someimplementations, the bounding box is “close” to fitting in the viewportif a certain portion (e.g., a percentage) of the bounding box fitswithin the viewport. Otherwise, more than one “viewportful” of verticalspace may be needed to display the page.

Although any given book page image can have a fixed aspect ratio, theviewport 102 containing the book page image does not have to have afixed aspect ratio. The image could be long and narrow if the whole pageis being displayed or short and wide if the top half of the page isdisplayed. Thus, there can be at least two options:

-   -   Option 1: Minimize the number of “viewportfuls” needed to show a        single book page image, at the expense of text size (e.g., place        as much text into the viewport as possible by scaling down the        text until the text reaches nearly the minimum line height).    -   Option 2: Scale the image up to get larger text, at the cost of        needing more “viewportfuls” to consume a single book page. The        upper bound on the up scaling can be set by Rule 1—no horizontal        scrolling. This approach can be better suited for a shorter,        wider viewport.

In some implementations, the page image can be scaled to a size so thata predetermined percentage of the page image fits in the viewport 102(e.g., the top 55% of the page). When the user clicks the controls 116,the remaining portion of the page image can be displayed in the viewport102 (e.g., the bottom 55% of the page), rather than a new page.Alternatively, a separate control (e.g., a toggle button) can beprovided for handling the scenario described above.

Using A Scaled Image

In some implementations, a scaled image is displayed by default. A zoomfeature can be included that allows the user to zoom between a scaledimage and the image with its original dimensions. Alternatively,software can be used to implement a multi-stage zoom. For example, azoom dropdown menu can be presented to the user with options such as50%, 75%, default (the scaled size), zoom to fit, or actual size. Once asize is set, the size can persist from image to image. In someimplementations, images (e.g., the next book page image of the sequence)can be aggressively preloaded, pre-scaled and potentially pre-renderedat the selected size.

In some implementations, the user is presented with zoom controls upondisplay of a default page. The zoom controls allow users to zoom-in orzoom-out the book page images. The zoom controls can include zoom“stops” which can be customized using, for example, information aboutthe image that was previously determined during a scanning process(e.g., image dimensions). The zoom “stops” can be zoom percentages(e.g., 10%, 38%) that have been customized to provide better userexperience for the particular image being zoomed and the particularviewport size.

Margin Adjusting Process

FIG. 3 is a flow diagram for an exemplary margin adjusting process 300.Since book page images are digital images of actual book pages, thesometimes ample margins used in a conventional book are captured in thedigital image. Such ample margins, however, can diminish the readabilityof the book in electronic form. The process 300 makes small adjustmentsto book page margins in the digital domain to maximize readability ofbook page images.

In some implementations, the process 300 begins by retrieving an imageincluding content and margins from an image repository (302). Theprocess 300 determines whether margins exist, and if margins exist, alsodetermines the dimensions of the margins (304). For example, the process300 can look for white space in the outer portion of a page image todetermine if page margins exist. If page margins exist, then adifference between page dimensions and a text bounding box can becalculated to determine page margin dimensions. Once the margindimensions are known, standard image cropping or magnifying techniquescan be used to adjust (e.g., trim or increase) the margins based on themargin dimensions to provide appropriate (e.g., additional or less)space for the content (306). The image content (e.g., text) can berescaled to fill the space provided by the margin adjusting (308). Insome implementations, the book page images with adjusted margins can bestored in an image repository (e.g., image repository 504) for futureretrieval when a user requests a book page having a particular scale(310).

In some implementations, cropping rules are used to provide a uniformpresentation of images in the viewport. For example, each book pageimage in a sequence of book page images can have a designated anchorpoint, such as the top left-hand corner of the book page image, whichcan be used to anchor the text in substantially the same location of theimage. When the user navigates through a book page image sequence thepresentation of the content in the viewport 102 will appear uniform. Insome implementations, a template can be used to scale each image in auniform manner. The template can be a page bounding box with standarddimensions (height, width). The dimensions of the template bounding boxcan be determined by processing an entire image sequence and determininga typical height and width of the text in the image sequence (e.g., amedian height and width). If a given text is close to the templatebounding box, than the template is used. Otherwise, the text isprocessed, as described in reference to FIG. 2.

TOC Creation Process

FIG. 4 is a flow diagram for an exemplary TOC creation process 400. Insome implementations, a TOC is presented in the viewport 102 withhypertext links to other pages in a book page sequence.

The process 400 begins by retrieving a book page sequence for an imagerepository (402). The book page sequence is searched using, for example,an OCR engine, to identify which images contain a TOC. Various clues,attributes or heuristics can be used to determine whether an imageincludes a TOC. For example, an image can be determined to be a TOC ifthe image contains white space, text with large fonts (e.g., a largetitle), ellipses, roman numerals, italicized text, or any otherattributes associated with TOCs. Some or all of these clues, attributesor heuristics can be combined into a score, which can be compared to areference to determine whether a TOC has been found.

If a TOC is found (406), then the image is tagged (408) and hypertextlinks are created for one or more (e.g., each) of the TOC entries (410)and embedded in the TOC image. The TOC image, including the links, canthen be presented in the viewport 102.

If the TOC is not found (406), the various clues, attributes andheuristics can be used to determine breaks in the book page sequence(412). For example, the first page of each chapter or section in a bookcan be identified as a break in the book page sequence. The breaks incontent can then be used to create a TOC (414). For example, the firstpage of each chapter or section of a book can be the entries of the TOC.Chapter and/or section title names used in the book can be used fornaming entry points in the created TOC, if available. Otherwise, namescan be created for the TOC entry points, for example, “Section 1”,“Section 2”, . . . , “Section N”.

Once the TOC is determined, links can be created for the TOC entries,and the TOC, including the links, can be presented in the viewport 102,as described in reference to FIG. 6. In some implementations, ratherthan embedding links into a TOC, the first few sentences or paragraphsof each chapter or section of a book can be displayed in a panel (e.g.,a side panel 612 in FIG. 6).

Viewport System Architecture

FIG. 5 is a block diagram of an exemplary viewport system architecture500. Other architectures are possible, including architectures with moreor fewer components. In some implementations, the architecture 500includes one or more processors 502 (e.g., dual-core Intel® Xeon®Processors), an image repository 504, one or more network interfaces506, an optional administrative computer 508 and one or morecomputer-readable mediums 510 (e.g., RAM, ROM, SDRAM, hard disk, opticaldisk, flash memory, SAN, etc.). These components can exchangecommunications and data over one or more communication channels 512(e.g., Ethernet, Enterprise Service Bus, PCI, PCI-Express, etc.), whichcan include various known network devices (e.g., routers, hubs,gateways, buses) and utilize software (e.g., middleware) forfacilitating the transfer of data and control signals between devices.

The term “computer-readable medium” refers to any medium thatparticipates in providing instructions to a processor 502 for execution,including without limitation, non-volatile media (e.g., optical ormagnetic disks), volatile media (e.g., memory) and transmission media.Transmission media includes, without limitation, coaxial cables, copperwire and fiber optics. Transmission media can also take the form ofacoustic, light or radio frequency waves.

The computer-readable medium 510 further includes an operating system514 (e.g., Mac OS® server, Windows® NT server), a network communicationmodule 516 and viewport system 518. The operating system 514 can bemulti-user, multiprocessing, multitasking, multithreading, real time,etc. The operating system 514 performs basic tasks, including but notlimited to: recognizing input from and providing output to theadministrator computer 508; keeping track and managing files anddirectories on computer-readable mediums 510 (e.g., memory or a storagedevice); controlling peripheral devices (e.g., repositories 504); andmanaging traffic on the one or more communication channels 512. Thenetwork communications module 516 includes various components forestablishing and maintaining network connections (e.g., software forimplementing communication protocols, such as TCP/IP, HTTP, etc.).

The viewport system 518 includes a web server 520, a scaling process522, a margin adjusting process 524, a TOC creation process 526, areference page creation process 528 and an OCR engine 530. Thesecomponents are described in reference to FIGS. 1-4.

The architecture 500 is one example of a suitable architecture forhosting a viewport system. Other architectures are possible, which caninclude more or fewer components. For example, the image repository 504and computer-readable medium 510 can be the same storage device orseparate storage devices. The components of architecture 500 can belocated in the same facility or distributed among several facilities.The architecture 500 can be implemented in a parallel processing orpeer-to-peer infrastructure or on a single device with one or moreprocessors. The viewport system 518 can include multiple softwarecomponents or it can be a single body of code. Some or all of thefunctionality of the viewport system 518 can be provided as a service toclients over a network. In such a case, these entities may need toinstall client applications. Some or all of the functionality of theviewport system 518 can be provided as part of a search engineapplication.

Exemplary TOC with Hypertext Links

FIG. 6 is a screen shot illustrating an exemplary TOC 604 includinglinks 610. In some implementations, the TOC 604 can be displayed on abook search engine web page 602 displayed in a web browser window 600.Controls 608 can be provided for navigating the pages of the book. Inthe example shown, the controls 608 include buttons for flipping pagesand a search box for jumping the user directly to a desired page. Also,included on the web page 602 is a panel 612 (e.g., the side panel shown)including information and links related to the book, as described inreference to FIG. 1. The TOC 604, including the links 610, can begenerated using the process 400 described in reference to FIG. 4.

In the example shown, the user search for the book “Huckleberry Finn”using the book search engine. After clicking on a link associated withHuckleberry Finn, a default book page image is displayed (e.g., a titlepage). Referring to FIG. 1, if a user clicks on the table of contentslink, then an image of the TOC 604 will be displayed, including links610. If the user clicks or otherwise interacts with a links 610, a bookpage image in a sequence of book page images responsive to the link willbe displayed.

Exemplary Book Reference Page

FIG. 7 is a screen shot illustrating an exemplary book reference page700. In some implementations, the reference page 700 includes a summarysection 701, a contents section 702, a review section 704, a pages withimages section 706 and a key words section 708. The book reference page700 is one example of a book reference page. Other configurations andformats for a book reference page are possible.

The summary section 701 includes a thumbnail image of the book's coverand basic information, such as, for example, title, author, publisher,number of pages, ISBN number, language, physical dimensions, format(i.e., paperback, hardback, e-book), etc.

The contents section 702 includes links to various chapters or sectionsof the book, and can list keywords that can be found in those chaptersor sections. When the user clicks a link, a viewport is presented whichallows the user to navigate pages of the chapter or section of the bookcorresponding to the link using navigation controls (e.g., controls116).

The review section 704 includes links to book reviews and otherinformation about the book, including reviewer ratings.

The pages with images section 706 displays thumbnails of pages of thebook that includes images. If the user clicks on the image, the pagewith the image corresponding to the clicked thumbnail will be displayedin a viewport. If the viewport is not already presented, the viewportwill be invoked in response to the click on the thumbnail image.

The key words section 708 includes categories of keywords contained inthe book. The keywords can be links that when clicked cause the bookpage or pages containing the keyword to be displayed a viewport. If theviewport is not already presented, the viewport will be invoked inresponse to the click on the keyword link.

The various information contained on the book reference page 700 can begathered from the book, the World Wide Web and any other onlineresources.

Various modifications may be made to the disclosed implementations andstill be within the scope of the following claims.

1. (canceled)
 2. A computer-implemented method comprising: accessing anelectronic book that includes a sequence of book page images, wherein atleast one book page image includes text; accessing a template that isgenerated by processing at least one book page image of the sequence ofbook page images, the processing at least one book page image of thesequence of book page images including determining a median height or amedian width of text in the at least one book page image to determinethe dimensions of the representative text bounding box of the template,wherein the template indicates dimensions of a representative textbounding box for the sequence of book page images; determining, for atleast one of one or more book page images of the sequence of book pageimages, whether the book page image has text that substantially fillsthe representative text bounding box, the determining whether the bookpage image has text that substantially fills the representative textbounding box including determining whether dimensions of the text arewithin prescribed thresholds of the median height or the median width;for at least one of one or more of the book page images of the sequenceof book page images that has text that substantially fills therepresentative text bounding box, scaling the book page image based atleast on (i) dimensions of a user interface through which the book pageimage is displayed, and (ii) the dimensions of the representative textbounding box; for at least one of one or more of the book page images ofthe sequence of book page images that has text that does notsubstantially fill the representative text bounding box, scaling thebook page image based at least on (i) a minimum text height, or (ii) amaximum text width; and providing one or more of the scaled book pageimages for display through the user interface.
 3. Thecomputer-implemented method of claim 2, further comprising determiningan anchor point for positioning text within the at least one book pageimage of the sequence of book page images in substantially the samelocation in each book page image in the sequence of book page images. 4.The computer-implemented method of claim 2, further comprising changingthe dimensions of the representative text bounding box based at least inpart on changed dimensions of the user interface.
 5. Thecomputer-implemented method of claim 2, wherein the at least one bookpage image is a digital image of an actual book page.
 6. Thecomputer-implemented method of claim 2, wherein the user interfaceincludes zoom controls to zoom the at least one book page.
 7. Thecomputer-implemented method of claim 6, wherein the zoom controlsinclude at least one zoom stop.
 8. The computer-implemented method ofclaim 7, wherein a zoom stop can include a zoom percentage that has beencustomized to prove a better user experiences for the at least one bookimage being zoomed.
 9. The method of claim 1, wherein scaling the atleast one book page image based at least on (i) a minimum text height,or (ii) a maximum text width, comprises: determining that the dimensionsof the at least one book page image match the dimensions of the userinterface; and in response to determining that the dimensions of thebook page image match the dimensions of the user interface, scaling thebook page image to be entirely displayed at once in the user interface.10. A computer-implemented method comprising: accessing an electronicbook that includes a sequence of book page images, wherein at least onebook page image includes text; accessing a template that, indicatesdimensions of a representative text bounding box for the sequence ofbook page images, the representative text bounding box having a heightthat corresponds to a median height of text in the sequence of book pageimages or a width that corresponds to a median width of text in thesequence of book page images; determining, for at least one of one ormore book page images of the sequence of book page images, whether thebook page image has text that substantially fills the template bydetermining whether dimensions of the text are within prescribedthresholds of the median height or the median width; for at least one ofone or more of the book page images of the sequence of book page imagesthat has text that substantially fills the template, scaling the bookpage image based at least on (i) dimensions of a user interface throughwhich the book page image is displayed, and (ii) the dimensions of thetemplate; for at least one of one or more of the book page images of thesequence of book page images that has text that does not substantiallyfill the template, scaling the book page image based at least on (i) aminimum text height, or (ii) a maximum text width; and providing one ormore of the scaled book page images for display through the userinterface.
 11. The computer-implemented method of claim 10, furthercomprising determining an anchor point for positioning text within theat least one book page image of the sequence of book page images insubstantially the same location in each book page image in the sequenceof book page images.
 12. The computer-implemented method of claim 10,further comprising changing the dimensions of the representative textbounding box based at least in part on changed dimensions of the userinterface.
 13. The computer-implemented method of claim 10, wherein theat least one book page image is a digital image of an actual book page.14. The computer-implemented method of claim 10, wherein the userinterface includes zoom controls to zoom the at least one book page. 15.The computer-implemented method of claim 14, wherein the zoom controlsinclude at least one zoom stop.
 16. The computer-implemented method ofclaim 15, wherein a zoom stop can include a zoom percentage that hasbeen customized to provide a better user experience for the at least onebook image being zoomed.
 17. The computer-implemented method of claim10, wherein scaling the at least one book page image based at least on(i) a minimum text height, or (ii) a maximum text width, comprises:determining that the dimensions of the at least one book page imagematch the dimensions of the user interface; and in response todetermining that the dimensions of the book page image match thedimensions of the user interface, scaling the book page to be entirelydisplayed at once in the user interface.
 18. A computer-implementedmethod comprising: accessing an electronic book that includes a sequenceof book page images, wherein at least one book page image includes text;determining, for at least one of one or more book page images of thesequence of book page images, whether dimensions of the book page imagetext are within prescribed thresholds of a median height or a medianwidth of the text in the sequence of book page images; for at least oneof one or more of the book page images of the sequence of book pageimages that has dimensions that are within prescribed thresholds of themedian height or median width of the text in the sequence of book pageimages, scaling the book page image based at least on (i) the dimensionsof the display area in the user interface and (ii) the median height ormedian width of the text in the sequences of book page images; for atleast one of one or more of the book page images of the sequence of bookpage images that does not have dimensions that are within prescribedthresholds of the median height or median width of the text in thesequence of book page images, scaling the book page image based at leaston (i) a minimum text height, or (ii) a maximum text width; andproviding one or more of the scaled book page images for display throughthe display area in the user interface.
 19. The computer-implementedmethod of claim 18, wherein the at least one book page image is adigital image of an actual book page.
 20. The computer-implementedmethod of claim 18, wherein the user interface includes zoom controls tozoom the at least one book page.
 21. The computer-implemented method ofclaim 20, wherein the zoom controls include at least one zoom stop.